package com.heisenhub.system.service;

import com.heisenhub.common.db.service.ISuperService;
import com.heisenhub.system.entity.Menu;
import com.heisenhub.system.model.MenuViewVo;
import com.heisenhub.system.model.VueRouter;
import com.heisenhub.system.query.MenuQuery;

import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author sen
 * @since 2023-12-24
 */
public interface IMenuService extends ISuperService<Menu, MenuQuery> {

    List<Menu> listAll();
    /**
     *  查找user 权限
     * @param username
     * @return
     */
    public List<Menu> findUserPermissions(String username);

    /**
     * 通过用户名创建对应的 Vue路由信息
     *
     * @param username 用户名
     * @return 路由信息
     */
    List<VueRouter<Menu>> getUserRouters(String username);


    /**
     * 获取所有树状菜单 列表
     * @return
     */
    List<MenuViewVo>  findTreeAllMetaView(Integer type);

    /**
     * 获取所有树状菜单 列表
     * @return
     */
    List<MenuViewVo>  findTreeByMenusaView();


}
